package main

import (
	"bufio"
	"fmt"
	"io"
	"os"
)

func main() {

	//打开文件
	//概念说明：file的叫法
	//1.file叫 file对象
	//2.file叫 file指针
	//3.file叫 file文件句柄
	file, err := os.Open("C:\\Users\\DELL\\Desktop\\test.txt")
	if err != nil {
		fmt.Println("open file err=", err)
	} else {
		//当函数退出时 要技术关闭file
		defer file.Close() // 要及时关闭file句柄 否则会有内存泄漏
		//创建一个*Reader 是带缓冲的
		/*
			const (
			defaultBufSize = 4096 //默认的缓冲区为4096
			)
		*/
		//大文件这个方式读比较好
		reader := bufio.NewReader(file)
		//循环的读取文件的内容
		for {
			str, err := reader.ReadString('\n') //读取到一个换行就结束
			if err == io.EOF {                  // io.EOF标识文件的末尾
				break
			}
			//输出内容
			fmt.Print(str)
		}
		fmt.Println("文件读取结束...")
	}
}
